
import React from 'react';
class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props);
  }
  state = { hasError: false, errorInfo: '' }; //是否报错
  static getDeriveStateFromError(error) {
    // 更新 state 使下一次渲染能够显示降级后的 UI
    return { hasError: true };
  }
  componentDidCatch(error) {
    // 同样可以将错误日志上报给服务器
    this.setState({
      hasError: true,
      errorInfo: error
    });
  }
  render() {
    if (this.state.hasError) {
      // 自定义降级后的 UI 并渲染
      return <div>{this.state.errorInfo}</div>;
    }
    return this.props.children;
  }
}

export default ErrorBoundary;
